﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MP3Ganizer.Common.Interfaces.FileTree;
using MP3Ganizer.Common.BaseObject;
using MP3Ganizer.Modules.FileTree.Controllers;
using MP3Ganizer.Modules.FileTree.ViewModels;
using MP3Ganizer.Modules.FileTree.Views;
using Microsoft.Practices.Composite.Modularity;
using Microsoft.Practices.Unity;
using Microsoft.Practices.Composite.Regions;
using MP3Ganizer.BusinessObject.Services.Classification;
using MP3Ganizer.BusinessObject.Services.IO;

namespace MP3Ganizer.Modules.FileTree
{
    [Module(ModuleName = "FileTreeModule"), ModuleDependency("InfrastructuresModule")]
    public class FileTreeModule : BaseModule<IFileTreeController>
    {

        public FileTreeModule(IUnityContainer unityContainer, IRegionManager regionManager)
            : base(unityContainer, regionManager)
        {
        }
        protected override void RegisterViewsAndServices()
        {
            Container.RegisterType<IFileTreeView, FileTreeView>(new ContainerControlledLifetimeManager());
            Container.RegisterType<IFileTreeViewModel, FileTreeViewModel>(new ContainerControlledLifetimeManager());
            Container.RegisterType<IFileItemViewModel, FileItemViewModel>();
            Container.RegisterType<IFileTreeController, FileTreeController>(new ContainerControlledLifetimeManager());
            
        }
    }
}
